home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 2 / Atari Mega Archive CD - Volume 2.iso / minix / up1510b.tgz / up1510b / src / test / test14.c < prev    next >
C/C++ Source or Header  |  1990-07-23  |  885b  |  51 lines

  1. /* Test 14. unlinking an open file. */
  2.  
  3. #include <errno.h>
  4.  
  5. #define TRIALS 100
  6. #define MAX_ERROR 4
  7.  
  8. char name[20] = {"TMP14."};
  9. int errct;
  10. int subtest = 1;
  11.  
  12. main()
  13. {
  14.   int fd0, i, pid;
  15.  
  16.   printf("Test 14 ");
  17.   pid = getpid();
  18.   name[6] = (pid & 037) + 33;
  19.   name[7] = ((pid * pid) & 037) + 33;
  20.   name[8] = 0;
  21.  
  22.  
  23.   for (i = 0; i < TRIALS; i++) {
  24.     if ( (fd0 = creat(name, 0777)) < 0) e(1);
  25.     if (write(fd0, name, 20) != 20) e(2);
  26.     if (unlink(name) != 0) e(3);
  27.     if (close(fd0) != 0) e(4);
  28.   }
  29.  
  30.  
  31.   fd0 = creat(name, 0777);
  32.   write(fd0, name, 20);
  33.   unlink(name);
  34.   printf("ok\n");
  35. }
  36.  
  37.  
  38. e(n)
  39. int n;
  40. {
  41.   int err_num = errno;        /* save errno in case printf clobbers it */
  42.  
  43.   printf("Subtest %d,  error %d  errno=%d  ", subtest, n, errno);
  44.   errno = err_num;        /* restore errno, just in case */
  45.   perror("");
  46.   if (errct++ > MAX_ERROR) {
  47.     printf("Too many errors; test aborted\n");
  48.     exit(1);
  49.   }
  50. }
  51.